 /* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Anti-DDoS Basic APIs
DDoS 基础防护防护 IP、攻击记录相关接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#import <Foundation/Foundation.h>
#import <JDCloudOCSDKBaseanti/BaseantiExecutor.h>

@implementation BaseantiClient

@synthesize userAgent = _userAgent;
@synthesize serviceName = _serviceName;
@synthesize version = _version;

-(void) addCustomerHeaderWithKey:(NSString*) key
                           value:(NSString*) value{
    if(![self customHeader])
    {
        self.customHeader = [[NSMutableDictionary alloc] init];
    }
    if(key && value)
    {
        [[self customHeader] setValue:value forKey:key];
    }
   
}

-(id)initWithGlobalConfig{
    if(![GlobalConfig credential])
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@"GlobalConfig credential not config" userInfo:nil];
        @throw e;
    }
    self.credential = [GlobalConfig credential];
    if(![GlobalConfig sdkEnvironment])
    {
        self.sdkEnvironment = [[SDKEnvironment alloc] initWithEndPoint:@"baseanti.jdcloud-api.com"];
    }else
    {
        self.sdkEnvironment = [GlobalConfig sdkEnvironment];
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 baseanti  v1";
    _serviceName = @"baseanti";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)initWithCredential:(Credential*)credential
         sdkEnvironment:(SDKEnvironment*)sdkEnvironment
{
    if(!credential)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" credential can not null" userInfo:nil];
        @throw e;
    }else{
        self.credential = credential;
    }
    
    if(!sdkEnvironment)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" sdkEnvironment can not null" userInfo:nil];
        @throw e;
    }else{
        self.sdkEnvironment = sdkEnvironment;
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 baseanti  v1";
    _serviceName = @"baseanti";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)initWithCredential:(Credential*)credential
{
    if(!credential)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" credential can not null" userInfo:nil];
        @throw e;
    }else{
        self.credential = credential;
    }
    if(![GlobalConfig sdkEnvironment])
    {
        self.sdkEnvironment = [[SDKEnvironment alloc] initWithEndPoint:@"baseanti.jdcloud-api.com"];
    }else
    {
        self.sdkEnvironment = [GlobalConfig sdkEnvironment];
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 baseanti  v1";
    _serviceName = @"baseanti";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)init{
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 baseanti  v1";
    _serviceName = @"baseanti";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}


/**
describeIpSafetyInfo sync request
@param describeIpSafetyInfoRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeIpSafetyInfoResponse` the request response data model
*/
-(NSDictionary*) describeIpSafetyInfoSyncWithRequest:(BaseantiDescribeIpSafetyInfoRequest*) describeIpSafetyInfoRequest
{
BaseantiDescribeIpSafetyInfoExecutor* excutor = [[BaseantiDescribeIpSafetyInfoExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeIpSafetyInfoRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpSafetyInfoResponse* response = [[BaseantiDescribeIpSafetyInfoResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeIpSafetyInfoResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeIpSafetyInfoAsyncWithRequest:(BaseantiDescribeIpSafetyInfoRequest*) describeIpSafetyInfoRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeIpSafetyInfoResponse* _Nullable describeIpSafetyInfoResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeIpSafetyInfoExecutor* excutor = [[BaseantiDescribeIpSafetyInfoExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeIpSafetyInfoRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpSafetyInfoResponse* response = [[BaseantiDescribeIpSafetyInfoResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
setIpCleanThreshold sync request
@param setIpCleanThresholdRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `setIpCleanThresholdResponse` the request response data model
*/
-(NSDictionary*) setIpCleanThresholdSyncWithRequest:(BaseantiSetIpCleanThresholdRequest*) setIpCleanThresholdRequest
{
BaseantiSetIpCleanThresholdExecutor* excutor = [[BaseantiSetIpCleanThresholdExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:setIpCleanThresholdRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiSetIpCleanThresholdResponse* response = [[BaseantiSetIpCleanThresholdResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"setIpCleanThresholdResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)setIpCleanThresholdAsyncWithRequest:(BaseantiSetIpCleanThresholdRequest*) setIpCleanThresholdRequest
                       completionHandler:(void(^)(int statusCode,BaseantiSetIpCleanThresholdResponse* _Nullable setIpCleanThresholdResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiSetIpCleanThresholdExecutor* excutor = [[BaseantiSetIpCleanThresholdExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:setIpCleanThresholdRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiSetIpCleanThresholdResponse* response = [[BaseantiSetIpCleanThresholdResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeIpMonitorFlow sync request
@param describeIpMonitorFlowRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeIpMonitorFlowResponse` the request response data model
*/
-(NSDictionary*) describeIpMonitorFlowSyncWithRequest:(BaseantiDescribeIpMonitorFlowRequest*) describeIpMonitorFlowRequest
{
BaseantiDescribeIpMonitorFlowExecutor* excutor = [[BaseantiDescribeIpMonitorFlowExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeIpMonitorFlowRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpMonitorFlowResponse* response = [[BaseantiDescribeIpMonitorFlowResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeIpMonitorFlowResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeIpMonitorFlowAsyncWithRequest:(BaseantiDescribeIpMonitorFlowRequest*) describeIpMonitorFlowRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeIpMonitorFlowResponse* _Nullable describeIpMonitorFlowResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeIpMonitorFlowExecutor* excutor = [[BaseantiDescribeIpMonitorFlowExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeIpMonitorFlowRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpMonitorFlowResponse* response = [[BaseantiDescribeIpMonitorFlowResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeIpResources sync request
@param describeIpResourcesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeIpResourcesResponse` the request response data model
*/
-(NSDictionary*) describeIpResourcesSyncWithRequest:(BaseantiDescribeIpResourcesRequest*) describeIpResourcesRequest
{
BaseantiDescribeIpResourcesExecutor* excutor = [[BaseantiDescribeIpResourcesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeIpResourcesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpResourcesResponse* response = [[BaseantiDescribeIpResourcesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeIpResourcesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeIpResourcesAsyncWithRequest:(BaseantiDescribeIpResourcesRequest*) describeIpResourcesRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeIpResourcesResponse* _Nullable describeIpResourcesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeIpResourcesExecutor* excutor = [[BaseantiDescribeIpResourcesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeIpResourcesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpResourcesResponse* response = [[BaseantiDescribeIpResourcesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeAttackStatistics sync request
@param describeAttackStatisticsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeAttackStatisticsResponse` the request response data model
*/
-(NSDictionary*) describeAttackStatisticsSyncWithRequest:(BaseantiDescribeAttackStatisticsRequest*) describeAttackStatisticsRequest
{
BaseantiDescribeAttackStatisticsExecutor* excutor = [[BaseantiDescribeAttackStatisticsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeAttackStatisticsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeAttackStatisticsResponse* response = [[BaseantiDescribeAttackStatisticsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeAttackStatisticsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeAttackStatisticsAsyncWithRequest:(BaseantiDescribeAttackStatisticsRequest*) describeAttackStatisticsRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeAttackStatisticsResponse* _Nullable describeAttackStatisticsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeAttackStatisticsExecutor* excutor = [[BaseantiDescribeAttackStatisticsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeAttackStatisticsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeAttackStatisticsResponse* response = [[BaseantiDescribeAttackStatisticsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeElasticIpResources sync request
@param describeElasticIpResourcesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeElasticIpResourcesResponse` the request response data model
*/
-(NSDictionary*) describeElasticIpResourcesSyncWithRequest:(BaseantiDescribeElasticIpResourcesRequest*) describeElasticIpResourcesRequest
{
BaseantiDescribeElasticIpResourcesExecutor* excutor = [[BaseantiDescribeElasticIpResourcesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeElasticIpResourcesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeElasticIpResourcesResponse* response = [[BaseantiDescribeElasticIpResourcesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeElasticIpResourcesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeElasticIpResourcesAsyncWithRequest:(BaseantiDescribeElasticIpResourcesRequest*) describeElasticIpResourcesRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeElasticIpResourcesResponse* _Nullable describeElasticIpResourcesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeElasticIpResourcesExecutor* excutor = [[BaseantiDescribeElasticIpResourcesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeElasticIpResourcesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeElasticIpResourcesResponse* response = [[BaseantiDescribeElasticIpResourcesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeCcsIpResources sync request
@param describeCcsIpResourcesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeCcsIpResourcesResponse` the request response data model
*/
-(NSDictionary*) describeCcsIpResourcesSyncWithRequest:(BaseantiDescribeCcsIpResourcesRequest*) describeCcsIpResourcesRequest
{
BaseantiDescribeCcsIpResourcesExecutor* excutor = [[BaseantiDescribeCcsIpResourcesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeCcsIpResourcesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeCcsIpResourcesResponse* response = [[BaseantiDescribeCcsIpResourcesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeCcsIpResourcesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeCcsIpResourcesAsyncWithRequest:(BaseantiDescribeCcsIpResourcesRequest*) describeCcsIpResourcesRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeCcsIpResourcesResponse* _Nullable describeCcsIpResourcesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeCcsIpResourcesExecutor* excutor = [[BaseantiDescribeCcsIpResourcesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeCcsIpResourcesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeCcsIpResourcesResponse* response = [[BaseantiDescribeCcsIpResourcesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeIpCleanThresholdRange sync request
@param describeIpCleanThresholdRangeRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeIpCleanThresholdRangeResponse` the request response data model
*/
-(NSDictionary*) describeIpCleanThresholdRangeSyncWithRequest:(BaseantiDescribeIpCleanThresholdRangeRequest*) describeIpCleanThresholdRangeRequest
{
BaseantiDescribeIpCleanThresholdRangeExecutor* excutor = [[BaseantiDescribeIpCleanThresholdRangeExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeIpCleanThresholdRangeRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpCleanThresholdRangeResponse* response = [[BaseantiDescribeIpCleanThresholdRangeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeIpCleanThresholdRangeResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeIpCleanThresholdRangeAsyncWithRequest:(BaseantiDescribeIpCleanThresholdRangeRequest*) describeIpCleanThresholdRangeRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeIpCleanThresholdRangeResponse* _Nullable describeIpCleanThresholdRangeResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeIpCleanThresholdRangeExecutor* excutor = [[BaseantiDescribeIpCleanThresholdRangeExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeIpCleanThresholdRangeRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpCleanThresholdRangeResponse* response = [[BaseantiDescribeIpCleanThresholdRangeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeAttackTypeCount sync request
@param describeAttackTypeCountRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeAttackTypeCountResponse` the request response data model
*/
-(NSDictionary*) describeAttackTypeCountSyncWithRequest:(BaseantiDescribeAttackTypeCountRequest*) describeAttackTypeCountRequest
{
BaseantiDescribeAttackTypeCountExecutor* excutor = [[BaseantiDescribeAttackTypeCountExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeAttackTypeCountRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeAttackTypeCountResponse* response = [[BaseantiDescribeAttackTypeCountResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeAttackTypeCountResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeAttackTypeCountAsyncWithRequest:(BaseantiDescribeAttackTypeCountRequest*) describeAttackTypeCountRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeAttackTypeCountResponse* _Nullable describeAttackTypeCountResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeAttackTypeCountExecutor* excutor = [[BaseantiDescribeAttackTypeCountExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeAttackTypeCountRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeAttackTypeCountResponse* response = [[BaseantiDescribeAttackTypeCountResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeIpResourceProtectInfo sync request
@param describeIpResourceProtectInfoRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeIpResourceProtectInfoResponse` the request response data model
*/
-(NSDictionary*) describeIpResourceProtectInfoSyncWithRequest:(BaseantiDescribeIpResourceProtectInfoRequest*) describeIpResourceProtectInfoRequest
{
BaseantiDescribeIpResourceProtectInfoExecutor* excutor = [[BaseantiDescribeIpResourceProtectInfoExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeIpResourceProtectInfoRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpResourceProtectInfoResponse* response = [[BaseantiDescribeIpResourceProtectInfoResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeIpResourceProtectInfoResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeIpResourceProtectInfoAsyncWithRequest:(BaseantiDescribeIpResourceProtectInfoRequest*) describeIpResourceProtectInfoRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeIpResourceProtectInfoResponse* _Nullable describeIpResourceProtectInfoResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeIpResourceProtectInfoExecutor* excutor = [[BaseantiDescribeIpResourceProtectInfoExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeIpResourceProtectInfoRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpResourceProtectInfoResponse* response = [[BaseantiDescribeIpResourceProtectInfoResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeCpsIpResources sync request
@param describeCpsIpResourcesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeCpsIpResourcesResponse` the request response data model
*/
-(NSDictionary*) describeCpsIpResourcesSyncWithRequest:(BaseantiDescribeCpsIpResourcesRequest*) describeCpsIpResourcesRequest
{
BaseantiDescribeCpsIpResourcesExecutor* excutor = [[BaseantiDescribeCpsIpResourcesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeCpsIpResourcesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeCpsIpResourcesResponse* response = [[BaseantiDescribeCpsIpResourcesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeCpsIpResourcesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeCpsIpResourcesAsyncWithRequest:(BaseantiDescribeCpsIpResourcesRequest*) describeCpsIpResourcesRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeCpsIpResourcesResponse* _Nullable describeCpsIpResourcesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeCpsIpResourcesExecutor* excutor = [[BaseantiDescribeCpsIpResourcesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeCpsIpResourcesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeCpsIpResourcesResponse* response = [[BaseantiDescribeCpsIpResourcesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
setCleanThreshold sync request
@param setCleanThresholdRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `setCleanThresholdResponse` the request response data model
*/
-(NSDictionary*) setCleanThresholdSyncWithRequest:(BaseantiSetCleanThresholdRequest*) setCleanThresholdRequest
{
BaseantiSetCleanThresholdExecutor* excutor = [[BaseantiSetCleanThresholdExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:setCleanThresholdRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiSetCleanThresholdResponse* response = [[BaseantiSetCleanThresholdResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"setCleanThresholdResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)setCleanThresholdAsyncWithRequest:(BaseantiSetCleanThresholdRequest*) setCleanThresholdRequest
                       completionHandler:(void(^)(int statusCode,BaseantiSetCleanThresholdResponse* _Nullable setCleanThresholdResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiSetCleanThresholdExecutor* excutor = [[BaseantiSetCleanThresholdExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:setCleanThresholdRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiSetCleanThresholdResponse* response = [[BaseantiSetCleanThresholdResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeIpResourceFlow sync request
@param describeIpResourceFlowRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeIpResourceFlowResponse` the request response data model
*/
-(NSDictionary*) describeIpResourceFlowSyncWithRequest:(BaseantiDescribeIpResourceFlowRequest*) describeIpResourceFlowRequest
{
BaseantiDescribeIpResourceFlowExecutor* excutor = [[BaseantiDescribeIpResourceFlowExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeIpResourceFlowRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpResourceFlowResponse* response = [[BaseantiDescribeIpResourceFlowResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeIpResourceFlowResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeIpResourceFlowAsyncWithRequest:(BaseantiDescribeIpResourceFlowRequest*) describeIpResourceFlowRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeIpResourceFlowResponse* _Nullable describeIpResourceFlowResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeIpResourceFlowExecutor* excutor = [[BaseantiDescribeIpResourceFlowExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeIpResourceFlowRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpResourceFlowResponse* response = [[BaseantiDescribeIpResourceFlowResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeIpResourceInfo sync request
@param describeIpResourceInfoRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeIpResourceInfoResponse` the request response data model
*/
-(NSDictionary*) describeIpResourceInfoSyncWithRequest:(BaseantiDescribeIpResourceInfoRequest*) describeIpResourceInfoRequest
{
BaseantiDescribeIpResourceInfoExecutor* excutor = [[BaseantiDescribeIpResourceInfoExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeIpResourceInfoRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpResourceInfoResponse* response = [[BaseantiDescribeIpResourceInfoResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeIpResourceInfoResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeIpResourceInfoAsyncWithRequest:(BaseantiDescribeIpResourceInfoRequest*) describeIpResourceInfoRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeIpResourceInfoResponse* _Nullable describeIpResourceInfoResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeIpResourceInfoExecutor* excutor = [[BaseantiDescribeIpResourceInfoExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeIpResourceInfoRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeIpResourceInfoResponse* response = [[BaseantiDescribeIpResourceInfoResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeAttackLogs sync request
@param describeAttackLogsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeAttackLogsResponse` the request response data model
*/
-(NSDictionary*) describeAttackLogsSyncWithRequest:(BaseantiDescribeAttackLogsRequest*) describeAttackLogsRequest
{
BaseantiDescribeAttackLogsExecutor* excutor = [[BaseantiDescribeAttackLogsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeAttackLogsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeAttackLogsResponse* response = [[BaseantiDescribeAttackLogsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeAttackLogsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeAttackLogsAsyncWithRequest:(BaseantiDescribeAttackLogsRequest*) describeAttackLogsRequest
                       completionHandler:(void(^)(int statusCode,BaseantiDescribeAttackLogsResponse* _Nullable describeAttackLogsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
BaseantiDescribeAttackLogsExecutor* excutor = [[BaseantiDescribeAttackLogsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeAttackLogsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    BaseantiDescribeAttackLogsResponse* response = [[BaseantiDescribeAttackLogsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}


 /**
 baseanti common sync request
 @param  jdcloudDataRequest request param
 @return key `statusCode` http request status code type is int
             `dataResult` the http request response data  type is NSData
             `requestError` the request error type is NSError
 */
 -(NSDictionary*) baseantiCommonSyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                                   url:(NSString*) url
                                                method:(NSString*) method{
    CommonExecutor* excutor = [[CommonExecutor alloc] initWithJDCloudClient:self url:url method:method];
    NSDictionary* responseResult = [excutor executeDataSync:jdcloudDataRequest];
    return responseResult;
}

-(void)baseantiCommonAsyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                         url:(NSString*) url
                                      method:(NSString*) method
                           completionHandler:(void(^)(int statusCode, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
     CommonExecutor* excutor = [[CommonExecutor alloc] initWithJDCloudClient:self url:url method:method];
    
    [excutor executeDataAsync:jdcloudDataRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        completionHandler(statusCode,responseData,error);
    }];
} 

@end
